//package cn.itbox.example.application.rocketmq;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
///**
// * @BelongProject springboot-study
// * @BelongPackage cn.itbox.example.application.rocketmq
// * @Description TODO
// * @ClassName ProducerDelayMessageExample
// * @Author huyanbing
// * @Date 2024/3/12 18:41
// * @Version 1.0.0
// */
//public class ProducerDelayMessageExample {
//    private static final Logger log = LoggerFactory.getLogger(ProducerDelayMessageExample.class);
//
//    private ProducerDelayMessageExample() {
//    }
//
//    public static void main(String[] args) throws ClientException {
//        final ClientServiceProvider provider = ClientServiceProvider.loadService();
//
//        String topic = "yourDelayTopic";
//        final Producer producer = ProducerSingleton.getInstance(topic);
//        // Define your message body.
//        byte[] body = "This is a delay message for Apache RocketMQ".getBytes(StandardCharsets.UTF_8);
//        String tag = "yourMessageTagA";
//        Duration messageDelayTime = Duration.ofSeconds(10);
//        final Message message = provider.newMessageBuilder()
//                // Set topic for the current message.
//                .setTopic(topic)
//                // Message secondary classifier of message besides topic.
//                .setTag(tag)
//                // Key(s) of the message, another way to mark message besides message id.
//                .setKeys("yourMessageKey-3ee439f945d7")
//                // Set expected delivery timestamp of message.
//                .setDeliveryTimestamp(System.currentTimeMillis() + messageDelayTime.toMillis())
//                .setBody(body)
//                .build();
//        try {
//            final SendReceipt sendReceipt = producer.send(message);
//            log.info("Send message successfully, messageId={}", sendReceipt.getMessageId());
//        } catch (Throwable t) {
//            log.error("Failed to send message", t);
//        }
//        // Close the producer when you don't need it anymore.
//        // You could close it manually or add this into the JVM shutdown hook.
//        // producer.close();
//    }
//}